import axios from 'axios'

// 创建axios实例
const api = axios.create({
  baseURL: 'http://localhost:50011', // 基础URL - 修改为后端实际运行端口
  timeout: 1800000, // 请求超时时间 (30分钟)
  headers: {
    'Content-Type': 'application/json'
  }
})

// 请求拦截器
api.interceptors.request.use(
  config => {
    // 从localStorage获取token
    const token = localStorage.getItem('token')
    if (token) {
      config.headers['Authorization'] = `Bearer ${token}`
    }
    return config
  },
  error => {
    console.error('请求错误:', error)
    return Promise.reject(error)
  }
)

// 响应拦截器
api.interceptors.response.use(
  response => {
    // 处理响应数据
    const res = response.data
    // 如果是Coze智能体调用结果，可能需要特殊处理
    if (res.code && res.code !== 200) {
      // 处理错误情况
      console.error('API错误:', res.message || '未知错误')
      // 可以在这里添加全局错误提示
      return Promise.reject(new Error(res.message || '未知错误'))
    }
    return res
  },
  error => {
    console.error('响应错误:', error)
    // 可以在这里添加全局错误提示，如「生成失败，请重试」
    return Promise.reject(error)
  }
)

// API接口封装
const apiService = {
  // 教学设计相关接口
  design: {
    // 生成教学设计
    generate(params) {
      return api.post('/api/design/generate', params)
    },
    // 导出教学设计
    export(id) {
      return api.get(`/api/design/export?id=${id}`, {
        responseType: 'blob'
      })
    }
  },
  
  // PPT主题生成相关接口
  ppt: {
    // 生成PPT主题
    generate(params) {
      return api.post('/api/ppt/generate', params)
    },
    // 导出PPT大纲
    export(id) {
      return api.get(`/api/ppt/export?id=${id}`, {
        responseType: 'blob'
      })
    }
  },
  
  // 多媒体资源相关接口
  media: {
    // 生成图像
    generateImage(params) {
      return api.post('/api/media/image', params)
    },
    // 生成视频
    generateVideo(params) {
      return api.post('/api/media/video', params)
    }
  },
  
  // 练习题相关接口
  exercise: {
    // 生成练习题
    generate(params) {
      return api.post('/api/exercise/generate', params)
    },
    // 重新生成练习题
    regenerate(params) {
      return api.post('/api/exercise/regenerate', params)
    }
  },
  
  // 试卷相关接口
  paper: {
    // 生成试卷
    generate(params) {
      return api.post('/api/paper/generate', params)
    },
    // 校验试卷
    verify(id) {
      return api.post('/api/paper/verify', { id })
    }
  },
  
  // 个性化定制相关接口
  custom: {
    // 生成个性化推荐
    generate(params) {
      return api.post('/api/custom/generate', params)
    }
  },
  
  // 反馈相关接口
  feedback: {
    // 提交反馈
    submit(params) {
      return api.post('/api/feedback/submit', params)
    },
    // 获取反馈历史
    getHistory(params) {
      return api.get('/api/feedback/history', { params })
    }
  },
  
  // 资源管理相关接口
  resource: {
    // 保存资源
    save(params) {
      return api.post('/api/resource/save', params)
    },
    // 获取资源列表
    getList() {
      return api.get('/api/resource/list')
    },
    // 获取资源详情
    getDetail(id) {
      return api.get(`/api/resource/detail?id=${id}`)
    },
    // 删除资源
    delete(id) {
      return api.delete(`/api/resource/delete?id=${id}`)
    }
  }
}

export default apiService